bindspace→mailbox_soa W1b: migrate dense content/topic/angle identity planes (additive, parity-tested)#518
Conversation
…lanes Second additive wiring step of the bindspace→mailbox_soa arc; completes the D-MBX-A2 column migration. ADDITIVE only — BindSpace untouched, nothing deleted. - MailboxSoA<N> gains content/topic/angle as heap Box<[u64]> of N*WORDS_PER_FP (the dense Hamming identity planes stay HOT per OQ-1/§2.7 — NOT a tiny ref; a [u64; N*256] stack array isn't expressible on stable Rust and would be ~2 MB /plane at N=1024). Local `pub const WORDS_PER_FP = 256` so the mailbox does not depend on the singleton it is migrating off of. The deprecated cycle (Vsa16kF32) plane is NEVER migrated — computed transiently if needed. - Zero-copy accessors content_row/topic_row/angle_row (the driver's resonance read path) + set_content/set_topic/set_angle; reset_row clears the row's span in each plane. - Tests: dense_planes_parity_with_bindspace (content byte-parity vs a BindSpace window — the migration-critical read; topic/angle full round-trip since BindSpace exposes no public topic/angle setter) + reset_row_clears_dense_planes (span isolation: a neighbour row survives a row reset). 16 mailbox_soa tests green, clippy clean. Dependency map updated: content/topic/angle → SHIPPED (W1b); D-MBX-A2 column migration COMPLETE; remaining arc is wiring (W2→W7), BindSpace deleted LAST. Co-Authored-By: Claude <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 45 minutes and 40 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
5-consolidation + 3-brutal-critic (5+3) hardening pass complete. v1 verdict was HOLD; v2 integrates every P0/P1. Architecture confirmed sound by all 3 critics (baton-handoff / brutally-honest-tester / preflight-drift); fixes are sequencing + two corrected premises. Overturned / fixed: - DROPPED the "W2.5 mutability decision gate" — it was a NON-ISSUE (no Arc<ShaderDriver>; the bins' Mutex guard already yields &mut ShaderDriver → &mut self.mailboxes free). The recommended RwLock would have ADDED a Mutex→RwLock→awareness lock-order edge. - W2 BLOCKED on #518 (content_row only on the W1b branch), not "READY NOW"; header no longer overclaims W1b shipped. - prefilter off-by-(N−len): zeroed MetaWord passes MetaFilter::accepts → add MailboxSoA::populated() (W1c) and clamp to it, not n_rows(). - BusDto round-trip P0: non-headline top_k indices live in the dropped cycle plane → D-DIST-5 reclassified with the named cycle exception; W3 adds a BusDto differential gate + busdto_bridge_test tolerance update. - W3+W4a collapsed into ONE atomic PR (H-DW-1); +feature-on CI matrix row. - ontology re-home onto ShaderDriver at W4b (else ctx_id falls to unwrap_or(0) at W7); shim edge arm uses edges_raw()[row] (one reattach); emit-path pack(temporal) v2-no-op observability; firewall lint bars BOTH the ndarray twin AND the THIRD type thinking_engine::layered::CausalEdge64. Co-Authored-By: Claude <noreply@anthropic.com>
What
W1b of the bindspace→mailbox_soa arc — migrates the dense
content/topic/angleHamming identity planes ontoMailboxSoA<N>, completing the D-MBX-A2 column migration. Strictly additive, parity-tested, nothing deleted —BindSpaceis fully intact; both paths run.Builds on #517 (W0 map + W1 small columns), now on
main.Changes (
crates/cognitive-shader-driver/src/mailbox_soa.rs)MailboxSoA<N>gainscontent/topic/angleas heapBox<[u64]>ofN * WORDS_PER_FP. Per OQ-1/§2.7 the dense Hamming identity planes stay hot in the mailbox (~6 KB/thought) — they are NOT reduced to a tiny ref; that's the cold/storage form. A[u64; N*256]stack array isn't expressible on stable Rust and would be ~2 MB/plane at N=1024, so heapBox<[u64]>is the representation.pub const WORDS_PER_FP = 256defined locally so the mailbox does not depend on the singleton it is migrating off of (W7 deletesBindSpace, not this).content_row/topic_row/angle_row—content_rowis the driver's resonance/Hamming read path (the BindSpace equivalent isFingerprintColumns::content_row) — plusset_content/set_topic/set_angle;reset_rowclears each plane's row span.cycle(Vsa16kF32) plane is NEVER migrated (OQ-1/§2.7) — computed transiently if a step needs it. Dropping it is what makes the 64k–256k hot working set fit.Tests (16
mailbox_soagreen, clippy clean)test_mailbox_soa_dense_planes_parity_with_bindspace—contentasserted byte-identical to aBindSpacewindow written with the same words (the migration-critical read);topic/anglefull round-trip on the mailbox (BindSpace exposes no public topic/angle setter, so they default zero there).test_mailbox_soa_reset_row_clears_dense_planes—reset_rowzeroes the row's plane spans, and a neighbouring row survives a reset (span isolation).Migration status
D-MBX-A2 column migration is now COMPLETE (W1
sigma/temporal/expert+ W1bcontent/topic/angle). The onlyBindSpace.fingerprintscolumn not migrated iscycle(dropped by design). The remaining arc is wiring (W2 differential dispatch read → W3/W4 feature-gated engine_bridge + dispatch swap → W5 bins → W6 tombstone → W7 deleteBindSpacelast), not column parity. Dependency map updated in the same commit.🤖 Generated with Claude Code
Generated by Claude Code